package 笔试;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Stack;

public class 二叉树的后序遍历 {
    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        Stack<TreeNode> st = new Stack<>();
        if(root == null) {
            return res;
        }

        st.push(root);
        while(!st.isEmpty()) {
            TreeNode node = st.pop();
            res.add(node.val);
            // 左孩子
            if(node.left != null) {
                st.push(node.left);
            }
            // 右孩子
            if(node.right != null) {
                st.push(node.right);
            }
        }
        Collections.reverse(res);// 反转
        return res;
    }
}
